Extensible data query scenario definition and consumption

ABSTRACT

Content providers define a set of scenarios that are addressed by their datasets. The scenarios include user-friendly, human-readable attributes such as a title, description, and visualization. The scenarios may also include a technical description that can be used to generate sample queries that can then be executed against the dataset. The technical description may be machine translated to arbitrary data querying protocols while maintaining the semantic meaning of the query. A user interface may be provided to allow users to intuitively generate the scenarios. In one embodiment, an extensible framework provides for the creation of protocol-specific translation plug-ins that are used to generate implementations of the scenario suitable for selected protocols. Known market-relevant translator plug-ins may also be implemented.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.13/517,611, filed Jun. 14, 2012, and entitled “EXTENSIBLE DATA QUERYSCENARIO DEFINITION AND CONSUMPTION,” and which issued as U.S. Pat. No.9,372,884 on Jun. 21, 2016, the entire content of which is incorporatedby reference herein in its entirety.

BACKGROUND

Data publishers, web services, and others may offer datasets topotential subscribers via a data marketplace or other venues. Often thedatasets are very large tables with many columns and rows. A subscriberwho is interested in the dataset may not have sufficient knowledge ofthe dataset or its format to properly access the data. Subscribers andothers who did not create the dataset may not know which columns tofilter on and which columns to provide as query results.

The general content of a dataset can be easily identified, for example,as weather, financial, geographic, or other data. However, it is noteasy for subscribers to understand what type of information can bepulled from the dataset or how to construct queries to gather desireddata. This may be a particular problem when using complex datasets thatrequires detailed knowledge of the dataset format in order to composeuseful queries.

In some cases, additional problems arise when the dataset uses a queryformat that is not compatible with the subscriber's platform.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

In addition to typical descriptions of the dataset contents, datasetpublishers provide examples of how to use their dataset in oneembodiment. When a dataset is offered to subscribers, the publisherdefines one or more questions that can be answered by the dataset. Thepublisher also defines the query code required to answer thosequestions. In a data marketplace, for example, a subscriber is shown theexample questions answered by the dataset and is provided code havingthe appropriate values that correspond to the question. One or moreterms in the query may be highlighted or otherwise designated asvariable or subscriber-selectable so that the subscriber can understandhow to modify the sample query to ask other questions. As a result, thesubscriber does not have to know how the dataset is organized in orderto use the dataset, but instead can use the pre-formatted queries tobegin using the dataset immediately.

In some cases, the subscriber's platform may not support the querylanguage used by the dataset or the subscriber may not be familiar withthe dataset's native format. A translation engine is used to translatethe sample query, or other queries, to a target format selected by thesubscriber. This allows the subscriber to obtain queries that both ask adesired question of the dataset and do so in a format that thesubscriber can deploy in existing applications.

Data brokers, such as aggregators and marketplaces, may provide contentproviders, such as dataset publishers, with the ability to definescenarios for their datasets once and then rely on the aggregator toappropriately translate the scenario into sales and consumption modelsbest suited for end-users.

In one embodiment, content providers define a set of scenarios that areaddressed by their dataset. The scenarios include user-friendly,human-readable attributes such as a title, description, andvisualization. The scenarios may also include a technical descriptionthat can be used to generate sample queries that can then be executedagainst the dataset. The technical description may be machine translatedto arbitrary data querying protocols while maintaining the semanticmeaning of the query. A user interface may be provided to allow users tointuitively generate the scenarios.

In one embodiment, an extensible framework provides for the creation ofprotocol-specific translation plug-ins that are used to generateimplementations of the scenario suitable for selected protocols. Knownmarket-relevant translator plug-ins may also be implemented.

DRAWINGS

To further clarify the above and other advantages and features ofembodiments of the present invention, a more particular description ofembodiments of the present invention will be rendered by reference tothe appended drawings. It is appreciated that these drawings depict onlytypical embodiments of the invention and are therefore not to beconsidered limiting of its scope. The invention will be described andexplained with additional specificity and detail through the use of theaccompanying drawings in which:

FIG. 1 is a block diagram illustrating a data marketplace that offersdatasets and APIs to users according to one embodiment.

FIG. 2 illustrates the type of information that a dataset publisherwould provide to the data marketplace to publish the dataset in oneembodiment.

FIG. 3 illustrates dataset information provided to subscribers on thedata marketplace according to one embodiment.

FIG. 4 is a block diagram of a system for translating sample datasetqueries to other formats according to one embodiment.

FIG. 5 is a flowchart illustrating one method or process for receivingdataset information from a content provider or dataset publisher to beoffered by a data broker according to one embodiment.

FIG. 6 is a flowchart illustrating one method or process for providingdataset information to a user by a data broker according to oneembodiment.

FIG. 7 illustrates an example of a suitable computing and networkingenvironment.

DETAILED DESCRIPTION

FIG. 1 is a block diagram illustrating a data marketplace 101 thatoffers datasets and APIs to users according to one embodiment.Marketplace 101 comprises a plurality of datasets 102-104 that areavailable for use by subscribers. Marketplace 101 may be a websitehosted on a web server that is accessed by subscribers via a public orprivate network 105, such as an intranet or Internet. The subscribersmay browse the available datasets 102-104 listed on data marketplace101. When a subscriber identifies useful or desired content inmarketplace 101, subscription and billing module 106 allows thesubscriber to purchase a subscription to the selected content.

The data marketplace content, such as datasets 102-104, is provided bydataset publishers 107-109. The content may be uploaded to marketplace101 by dataset publishers 107-109 via a public or private network 110,such as an intranet or Internet. Alternatively, the datasets may beaccessed remotely by the marketplace on behalf of subscribers. In oneembodiment, some or all of the publishers and developers are independentfrom and unrelated to the operator of marketplace 101 and thesubscribers. Marketplace 101 provides a centralized location for thedataset publishers 107-109 to offer their content to potentialsubscribers.

Dataset publishers 107-109 collect, correlate, and organize informationon selected any subject matter. The data dataset publishers 107-109 thenmakes the processed information available as datasets 102-104 on datamarketplace 101. Datasets 102-104 may use a standardized protocol forquerying data, such as the Open Data Protocol (OData). Datasetsubscribers 111-114 may have an interest in or need for the informationavailable in one or more datasets 102-104. Data marketplace 101 allows asubscriber 111-114 to review many datasets from a number of differentdata publishers 107-109 without having to identify and seek out eachdataset publisher separately. Once a subscriber selects a dataset,subscription and billing module 106 allows the subscriber to enter intoa contract for access to the dataset. Subscription and billing module106 also handles billing to the dataset subscriber and payment todataset publisher.

In one embodiment, one or more datasets 102-104 are designed to operatein a cloud environment in which hosted services are delivered over theInternet or some other network. Subscriptions to datasets 102-104 may besold on a flat-fee or an on-demand basis. Access to the datasets mayalso be elastic so that the user may have as much or as little of adataset as required at any given time. Additionally, datasets 102-104may be fully managed by the publishers 107-109 so that the subscriberneeds nothing but a computer and network access to the dataset.

Some datasets 102-104 may be adapted to operate on external datasetsthat are not available via data marketplace 101. A subscriber to anexternal dataset may use an API to access the dataset. For example, anAPI for the dataset may provide the subscriber with a link or access tosuch an external dataset. The subscribers 111-114 access the datasetsusing a selected query language or format. Different subscribers 111-114may require different query formats based upon the application using thedataset.

FIG. 2 illustrates the type of information 200 that a dataset publisherwould provide to the data marketplace to publish the dataset in oneembodiment. The dataset publisher provides dataset metadata 201, such asa dataset name, billing structure, maintenance/update schedule, databasetype, or any other information that may be useful to the datamarketplace to support the dataset. Connection string 202 is a pointer,address, or any other information required to identify the location ofdataset 203. The dataset 203 may be uploaded entirely to the datamarketplace or it may be hosted externally by the dataset publisher or athird party.

A first sample query 204 is provided by the dataset publisher. Query 204is an example of how a subscriber may use and/or access dataset 203. Forexample, if dataset 203 is a SQL database, then query 204 may be exampleT-SQL statements that a subscriber would use to communicate with dataset203 for a particular query. Sample query 204 may identify certain queryparameters 205 that can be modified. For example, if sample query 204requests data for a certain year, the publisher may indicate that otherdates 205 may also be used to query the dataset.

The dataset publisher also may provide a description 206 of the query.Description 206 explains to potential subscribers what type ofinformation may be pulled from the dataset and how the sample query isstructured, for example. An image 207 illustrating the query results maybe provided. For example, a chart, map, table, or some othervisualization of the results of sample query 204 is shown in image 207.

Additional sample queries 208 with other selectable query terms 209 mayalso be provided by the publisher to illustrate additional informationthat can be collected from the dataset. The sample queries 204 and 208may be in an appropriate syntax for the platform hosting dataset 203.However, the subscribers may require or desire different query formatsdepending upon the platform used by the subscribers. In one embodiment,the data marketplace translates the sample queries into other formatsselected by the subscribers.

FIG. 3 illustrates dataset information 300 provided to subscribers onthe data marketplace according to one embodiment. The data marketplacemay provide separate listings 300 for each dataset offered. The datasetlisting 300 may include information collected from the datasetpublisher, such as the information shown in FIG. 2, and other featuresoffered specifically by the data marketplace. The dataset name 301 isshown along with one or more sample queries 302. The sample queries 302may be selected from the publisher-provided information 204 and 208 andprovide the potential subscriber with examples how the dataset may beused. Examples images 303 are provided for the output of the datasetusing sample query 302. These images may include charts, graphs, text,or any other output data format supported by the dataset. A description304 of the dataset contents and they sample queries is also shown.

The subscriber may not be able to use the format of the sample query,for example, if the subscriber's platform does not support the syntax ofthe sample query or if the subscriber is not familiar with that format.Accordingly, the data marketplace is capable of translating the samplequeries into other formats so that the subscriber can evaluate how thedataset can be used in other applications. For example, the user mayrequest the sample query in C# by selecting option 305 or in ODatasyntax by selecting option 306. The data marketplace will then convertthe sample query to a format requested by the subscriber. If thesubscriber may then purchase access to the dataset using option 307.

FIG. 4 is a block diagram of a system for translating sample datasetqueries to other formats according to one embodiment. A subscriber mayselect a target format for a sample query 401 listed with a database ofinterest. The sample query is provided to translation engine 402, whichconverts the original query to a format selected by the subscriber. Forexample, if the offered sample query will not work on the subscriber'splatform, then the query may translated into a web query user interface403, such as a format associated with the data marketplace, an ODataquery 404, T-SQL query 405, C# query 406 or any other appropriate queryformat 407.

Translation engine 402 may be a software application that is designed toconvert statements from one query format to another. In some cases,translation engine 402 may not have the capability perform a desiredtranslation. Extensibility API 408 may be used by translation engine 402to access external translation applications, such as web translator 409,OData translator 410, T-SQL translator 411, C# translator 412, or anyother translator 413. The translator applications 409-413 may provideplug-in support for a platform-specific format required by thesubscriber. The translator converts the sample query 401 and returns thequery to engine 402, which outputs the translated query to the user.

Although query 401 is listed as a “sample query,” it will be understoodthat any valid query for a dataset may be used with translation engine402. Once a user subscribes to the dataset, other queries can be writtenfor the dataset in the native format for the dataset. Thosenative-format queries may then be translated to a format appropriate tothe subscriber's platform.

FIG. 5 is a flowchart illustrating one method or process for receivingdataset information from a content provider or dataset publisher to beoffered by a data broker according to one embodiment. In step 501,information about a dataset is received at a data broker server from acontent provider. The dataset is available for subscription by a user,which may be a periodic payment for continued use or a one-time purchaseof dataset access. The dataset may be stored at the data broker serveror at a location remote from the data broker server. The informationreceived from the content provider may identify one or more usescenarios for the dataset in step 502. The scenarios identify at leastone query that can be answered by the dataset.

A sample query code is received from the content provider in step 503.The sample query code corresponds to the at least one query for thescenario. In step 504, terms are identified in the sample query that canbe modified by the user. The sample query code may be provided to theuser. In step 505, the sample query is provided to a translation enginefor translation to a format selected by the user. The sample query maybe translated to a protocol-specific format or a platform-specificformat selected by the user. The translated query maintains the semanticmeaning of the sample query.

FIG. 6 is a flowchart illustrating one method or process for providingdataset information to a user by a data broker according to oneembodiment. In step 601, information about a dataset is displayed to auser. The dataset is available for subscription by the user, such as arecurring or one-time payment for access to the dataset. In step 602,one or more use scenarios for the dataset are identified. The scenariosidentify at least one query that can be answered by the selecteddataset. Sample query code for the dataset is displayed in step 603. Thesample query code corresponds to the at least one query for thescenario.

In step 604, a request for the sample query code is received from theuser. The sample query code is provided to the user in step 605. In someembodiments, a query-format identification may be received from theuser. The sample query code may be provided to a translation engine fortranslation to the format selected by the user. The sample query may betranslated to a protocol-specific format or a platform-specific formatselected by the user.

It will be understood that steps 501-505 of the process illustrated inFIG. 5 and steps 601-605 of the process illustrated in FIG. 6 may beexecuted simultaneously and/or sequentially. It will be furtherunderstood that each step may be performed in any order and may beperformed once or repetitiously.

FIG. 7 illustrates an example of a suitable computing and networkingenvironment 700 on which the examples of FIGS. 1-4 may be implemented.The computing system environment 700 is only one example of a suitablecomputing environment and is not intended to suggest any limitation asto the scope of use or functionality of the invention. The invention isoperational with numerous other general purpose or special purposecomputing system environments or configurations. Examples of well-knowncomputing systems, environments, and/or configurations that may besuitable for use with the invention include, but are not limited to:personal computers, server computers, hand-held or laptop devices,tablet devices, multiprocessor systems, microprocessor-based systems,set top boxes, programmable consumer electronics, network PCs,minicomputers, mainframe computers, distributed computing environmentsthat include any of the above systems or devices, and the like.

The invention may be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, and so forth, whichperform particular tasks or implement particular abstract data types.The invention may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in local and/or remotecomputer storage media including memory storage devices.

With reference to FIG. 7, an exemplary system for implementing variousaspects of the invention may include a general purpose computing devicein the form of a computer 700. Components may include, but are notlimited to, various hardware components, such as processing unit 701,data storage 702, such as a system memory, and system bus 703 thatcouples various system components including the data storage 702 to theprocessing unit 701. The system bus 703 may be any of several types ofbus structures including a memory bus or memory controller, a peripheralbus, and a local bus using any of a variety of bus architectures. By wayof example, and not limitation, such architectures include IndustryStandard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus,Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA)local bus, and Peripheral Component Interconnect (PCI) bus also known asMezzanine bus.

The computer 700 typically includes a variety of computer-readable media704. Computer-readable media 704 may be any available media that can beaccessed by the computer 700 and includes both volatile and nonvolatilemedia, and removable and non-removable media, but excludes propagatedsignals. By way of example, and not limitation, computer-readable media704 may comprise computer storage media and communication media.Computer storage media includes volatile and nonvolatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer-readable instructions, data structures,program modules or other data. Computer storage media includes, but isnot limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other optical diskstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium which can be used tostore the desired information and which can accessed by the computer700. Communication media typically embodies computer-readableinstructions, data structures, program modules or other data in amodulated data signal such as a carrier wave or other transportmechanism and includes any information delivery media. The term“modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, RF, infrared and otherwireless media. Combinations of the any of the above may also beincluded within the scope of computer-readable media. Computer-readablemedia may be embodied as a computer program product, such as softwarestored on computer storage media.

The data storage or system memory 702 includes computer storage media inthe form of volatile and/or nonvolatile memory such as read only memory(ROM) and random access memory (RAM). A basic input/output system(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 700, such as during start-up, istypically stored in ROM. RAM typically contains data and/or programmodules that are immediately accessible to and/or presently beingoperated on by processing unit 701. By way of example, and notlimitation, data storage 702 holds an operating system, applicationprograms, and other program modules and program data.

Data storage 702 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,data storage 702 may be a hard disk drive that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive thatreads from or writes to a removable, nonvolatile magnetic disk, and anoptical disk drive that reads from or writes to a removable, nonvolatileoptical disk such as a CD ROM or other optical media. Otherremovable/non-removable, volatile/nonvolatile computer storage mediathat can be used in the exemplary operating environment include, but arenot limited to, magnetic tape cassettes, flash memory cards, digitalversatile disks, digital video tape, solid state RAM, solid state ROM,and the like. The drives and their associated computer storage media,described above and illustrated in FIG. 7, provide storage ofcomputer-readable instructions, data structures, program modules andother data for the computer 700.

A user may enter commands and information through a user interface 705or other input devices such as a tablet, electronic digitizer, amicrophone, keyboard, and/or pointing device, commonly referred to asmouse, trackball or touch pad. Other input devices may include ajoystick, game pad, satellite dish, scanner, or the like. Additionally,voice inputs, gesture inputs using hands or fingers, or other naturaluser interface (NUI) may also be used with the appropriate inputdevices, such as a microphone, camera, tablet, touch pad, glove, orother sensor. These and other input devices are often connected to theprocessing unit 701 through a user input interface 705 that is coupledto the system bus 703, but may be connected by other interface and busstructures, such as a parallel port, game port or a universal serial bus(USB). A monitor 706 or other type of display device is also connectedto the system bus 703 via an interface, such as a video interface. Themonitor 706 may also be integrated with a touch-screen panel or thelike. Note that the monitor and/or touch screen panel can be physicallycoupled to a housing in which the computing device 700 is incorporated,such as in a tablet-type personal computer. In addition, computers suchas the computing device 700 may also include other peripheral outputdevices such as speakers and printer, which may be connected through anoutput peripheral interface or the like.

The computer 700 may operate in a networked or cloud-computingenvironment using logical connections 707 to one or more remote devices,such as a remote computer. The remote computer may be a personalcomputer, a server, a router, a network PC, a peer device or othercommon network node, and typically includes many or all of the elementsdescribed above relative to the computer 700. The logical connectionsdepicted in FIG. 7 include one or more local area networks (LAN) and oneor more wide area networks (WAN), but may also include other networks.Such networking environments are commonplace in offices, enterprise-widecomputer networks, intranets and the Internet.

When used in a networked or cloud-computing environment, the computer700 may be connected to a public or private network through a networkinterface or adapter 707. In some embodiments, a modem or other meansfor establishing communications over the network. The modem, which maybe internal or external, may be connected to the system bus 703 via thenetwork interface 707 or other appropriate mechanism. A wirelessnetworking component such as comprising an interface and antenna may becoupled through a suitable device such as an access point or peercomputer to a network. In a networked environment, program modulesdepicted relative to the computer 700, or portions thereof, may bestored in the remote memory storage device. It may be appreciated thatthe network connections shown are exemplary and other means ofestablishing a communications link between the computers may be used.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed is:
 1. A computer system, comprising: one or moreprocessors; system memory; and one or more computer readable storagemedia having stored thereon computer-executable instructions that areexecutable by the one or more processors to cause the computer system toprovide access to datasets, the computer-executable instructionsincluding instructions that are executable to cause the computer systemto perform at least the following: identify a plurality of datasetdescriptions that are provided by one or more dataset publishers, eachdataset description describing a corresponding dataset provided by oneof the one or more dataset publishers and including one or more samplequeries that illustrate a syntax for querying the corresponding dataset,the one or more sample queries being in a first format; generate a firstuser interface that includes a listing of a plurality of datasets thatare available for subscription by dataset subscriber computer systems,each listed dataset corresponding to one of the plurality of datasetdescriptions; based at least on receiving a selection of a particularone of the plurality of listed datasets at the first user interface,generate a second user interface, the second user interface presentingthe one or more sample queries from a particular dataset descriptionthat corresponds to the particular listed dataset, the second userinterface also including a plurality of query translation user interfaceelements, each query translation user interface element beinguser-selectable to translate at least one of the one or more samplequeries to a second format corresponding to the query translation userinterface element; based on selection of one of the query translationuser interface elements at the second user interface, translate the atleast one of the one or more sample queries into the second format,wherein the translated format has a different syntax than the firstformat; and provide the translated at least one of the one or moresample queries to the subscriber computer system.
 2. The computer systemof claim 1, wherein the at least one sample query is provided to atranslation engine for translation to the translated format.
 3. Thecomputer system of claim 1, wherein at least one corresponding datasetprovided by one of the one or more dataset publishers is stored at alocation of the one or more dataset publishers.
 4. The computer systemof claim 1, wherein the computer-executable instructions also includeinstructions that are executable to cause the computer system to storeat least one corresponding dataset provided by one of the one or moredataset publishers.
 5. The computer system of claim 1, wherein eachsample query also identifies one or more user-modifiable queryparameters.
 6. The computer system of claim 5, wherein thecomputer-executable instructions also include instructions that areexecutable to cause the computer system to receive a modified samplequery comprising at least one of the one or more modifiable queryparameters that have been modified.
 7. The computer system of claim 1,wherein the computer-executable instructions also include instructionsthat are executable to cause the computer system to receive at least onecorresponding dataset provided by one of the one or more datasetpublishers to be stored locally.
 8. The computer system of claim 1,wherein the first user interface is a dataset listing user interface,and wherein the second user interface is a dataset subscription userinterface.
 9. A method, implemented at a computer system that includesone or more processors, for providing access to datasets, the methodcomprising: identifying a plurality of dataset descriptions that areprovided by one or more dataset publishers, each dataset descriptiondescribing a corresponding dataset provided by one of the one or moredataset publishers and including one or more sample queries thatillustrate a syntax for querying the corresponding dataset, the one ormore sample queries being in a first format; generating a first userinterface that includes a listing of a plurality of datasets that areavailable for subscription by dataset subscriber computer systems, eachlisted dataset corresponding to one of the plurality of datasetdescriptions; based at least on receiving a selection of a particularone of the plurality of listed datasets at the first user interface,generating a second user interface, the second user interface presentingthe one or more sample queries from a particular dataset descriptionthat corresponds to the particular listed dataset, the second userinterface also including a plurality of query translation user interfaceelements, each query translation user interface element beinguser-selectable to translate at least one of the one or more samplequeries to a second format corresponding to the query translation userinterface element; based on selection of one of the query translationuser interface elements at the second user interface, translating the atleast one of the one or more sample queries into the second format,wherein the translated format has a different syntax than the firstformat; and providing the translated at least one of the one or moresample queries to the subscriber computer system.
 10. The method ofclaim 9, wherein the at least one sample query is provided to atranslation engine for translation to the translated format.
 11. Themethod of claim 9, wherein at least one corresponding dataset providedby one of the one or more dataset publishers is stored at a location ofthe one or more dataset publishers.
 12. The method of claim 9, furthercomprising storing at least one corresponding dataset provided by one ofthe one or more dataset publishers.
 13. The method of claim 9, whereineach sample query also identifies one or more user-modifiable queryparameters.
 14. The method of claim 13, further comprising receiving amodified sample query comprising at least one of the one or moremodifiable query parameters that have been modified.
 15. The method ofclaim 9, further comprising receiving at least one corresponding datasetprovided by one of the one or more dataset publishers to be storedlocally.
 16. The method of claim 9, wherein the first user interface isa dataset listing user interface, and wherein the second user interfaceis a dataset subscription user interface.
 17. A computer program productcomprising one or more hardware storage devices having stored thereoncomputer-executable instructions that are executable by one or moreprocessors of a computer system to cause the computer system to provideaccess to datasets, the computer-executable instructions includinginstructions that are executable to cause the computer system to performat least the following: identify a plurality of dataset descriptionsthat are provided by one or more dataset publishers, each datasetdescription describing a corresponding dataset provided by one of theone or more dataset publishers and including one or more sample queriesthat illustrate a syntax for querying the corresponding dataset, the oneor more sample queries being in a first format; generate a first userinterface that includes a listing of a plurality of datasets that areavailable for subscription by dataset subscriber computer systems, eachlisted dataset corresponding to one of the plurality of datasetdescriptions; based at least on receiving a selection of a particularone of the plurality of listed datasets at the first user interface,generate a second user interface, the second user interface presentingthe one or more sample queries from a particular dataset descriptionthat corresponds to the particular listed dataset, the second userinterface also including a plurality of query translation user interfaceelements, each query translation user interface element beinguser-selectable to translate at least one of the one or more samplequeries to a second format corresponding to the query translation userinterface element; based on selection of one of the query translationuser interface elements at the second user interface, translate the atleast one of the one or more sample queries into the second format,wherein the translated format has a different syntax than the firstformat; and provide the translated at least one of the one or moresample queries to the subscriber computer system.
 18. The computerprogram product of claim 17, wherein the at least one sample query isprovided to a translation engine for translation to the translatedformat.
 19. The computer program product of claim 17, wherein eachsample query also identifies one or more user-modifiable queryparameters.
 20. The computer program product of claim 19, wherein thecomputer-executable instructions also include instructions that areexecutable to cause the computer system to receive a modified samplequery comprising at least one of the one or more modifiable queryparameters that have been modified.